One of the major hurdles for customers when planning to upgrade software is that the upgrade involves many components and some components may be desired for retained use, while other components can benefit from the upgrade. For example, in some cases, the user may prefer to retain a prior version user interface because of the barrier of learning a new UI in the upgrade, yet upgrade the underlying application logic of the application.
Oftentimes, the new UI changes the way that user needs to interact with the application. Furthermore, changes to the UI may require developers to update extensions to the product to remain compatible. Thus, the monolithic changes typical in applications can introduce obstacles which cause administrators to delay upgrades until users can be trained and extensions are updated. This often means that users cannot take advantage of the backend updates in the new version of the application which may save time and money.